package org.example.wumeng.service;

import org.example.wumeng.pojo.Prescription;

import java.util.Map;

public interface T_prescriptionService {

    /**
     * 分页查询方剂列表
     * @param page 页码
     * @param size 每页大小
     * @param name 方剂名称（模糊查询）
     * @param category 方剂分类
     * @param source 出处（模糊查询）
     * @return 分页结果
     */
    Map<String, Object> getList(Integer page, Integer size, String name, String category, String source);

    /**
     * 根据ID获取方剂详情
     * @param id 方剂ID
     * @return 方剂信息
     */
    Prescription getById(Long id);

    /**
     * 创建方剂
     * @param prescription 方剂信息
     * @return 创建的方剂ID
     */
    Long create(Prescription prescription);

    /**
     * 更新方剂信息
     * @param id 方剂ID
     * @param prescription 方剂信息
     */
    void update(Long id, Prescription prescription);

    /**
     * 删除方剂
     * @param id 方剂ID
     */
    void delete(Long id);

    /**
     * 根据分类统计方剂数量
     * @param category 分类
     * @return 方剂数量
     */
    Long countByCategory(String category);

    /**
     * 根据出处统计方剂数量
     * @param source 出处
     * @return 方剂数量
     */
    Long countBySource(String source);

    /**
     * 根据分类查询方剂
     * @param category 分类
     * @param page 页码
     * @param size 每页大小
     * @return 查询结果
     */
    org.example.wumeng.pojo.Result<java.util.List<Prescription>> getByCategory(String category, int page, int size);

    /**
     * 获取分类统计
     * @return 分类统计结果
     */
    org.example.wumeng.pojo.Result<java.util.List<java.util.Map<String, Object>>> getCategoryStatistics();
}